Github 相關在之前的文章有介紹過了,可以參考[ 猩猩也會用 ] Github 使用筆記
這篇會單純著重在Git 指令上進行介紹
如果你只是忘記指令,可以從第三章開始看就好瞜。
版本控制是一種系統,用於追蹤和管理檔案或專案隨時間變化的過程。它允許多人協作開發,並保留專案的完整歷史記錄。
Git誕生於2005年,其創建與Linux核心開發社群密切相關。在Git出現之前,Linux核心社群使用的是BitKeeper這個專有的分散式版本控制系統。
Git這個名字是Torvalds(創始人)自己選的,在英國俚語中意為"討厭的人"。Torvalds說他是以自嘲的方式為它命名的。
Git的這些特點使它成為當今最流行的版本控制系統之一,不僅適用於小型項目,也能夠有效管理大型、複雜的項目。它的設計理念和功能特性極大地改變了軟件開發的協作方式。
2.2.1.1 Git官方網站:Git
2.2.1.2 下載Windows版本的安裝檔。
2.2.1.3. 安裝程式,按照指示進行安裝。
2.2.1.4. 完成安裝後,打開命令提示或Git Bash來驗證安裝:git --version
2.2.1.5. 設定識別資料
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
可以輸入,來確認是否更改成功
git config --global user.name
git config --global user.email
2.2.1.6. 設定編輯器git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -nosession"
(可以選擇自己習慣的編輯器)
2.2.1.7. 檢視自己的設定git config --list
2.2.2.1. 直接使用apt指令安裝sudo apt update
sudo apt install git
2.2.2.2. 驗證安裝:git --version
2.2.2.3. 其餘同 windows 的 2.2.1.5~7
git 初次設定詳細可以參考Git官網
好現在你就可以開始git的功能了! :)
會有兩種方法取得repostory
1. 將現有的專案或者資料夾匯入 Git
2. 從其它伺服器(如github), clone / 下載一份現有的 Git repository
3.1.1.1 將資料夾,進行git初始化,這個命令將會建立一個名為 .git 的子資料夾,其中包含 Git 所有必需的Repository檔案,預設沒有追蹤任何檔案git init
3.1.2.1 clone git clone <repository_url>
3.2.1 查看哪些文件被修改git status
3.2.2 添加特定文件到暫存區git add <filename>
3.2.3 添加所有更改的文件 git add .
3.2.4 提交暫存區中的更改 git commit -m "提交信息"
如果想要更詳細的提交信息,可以省略 -m
參數,這會打開一個文本(2.2.1.6 設定的)編輯器讓您輸入多行提交信息。
3.2.5 如果需要修改最後一次提交git commit --amend
查看提交歷史: git log
Copy查看簡化的歷史記錄: git log --oneline
查看特定提交的詳細信息: git show <commit_hash>
列出本地分支: git branch
列出所有分支(包括遠端分支):git branch -a
創建新分支:git branch <branch_name>
切換到指定分支: git checkout <branch_name>
創建並切換到新分支: git checkout -b <new_branch_name>
刪除已合併的分支: git branch -d <branch_name>
強制刪除未合併的分支: git branch -D <branch_name>
將指定分支合併到當前分支: git merge <branch_name>
當合併產生衝突時,Git會在文件中標記衝突區域。您需要手動編輯這些文件來解決衝突,然後: git add <conflicted_file>
git commit
git remote add <remote_name> <repository_url>
git remote -v
獲取遠端更新但不合併:git fetch <remote_name>
獲取遠端更新並合併到當前分支: git pull <remote_name> <branch_name>
將本地分支推送到遠端: git push <remote_name> <branch_name>
git checkout -- <file>
git reset HEAD <file>
創建一個新的提交來撤銷之前的提交: git revert <commit_hash>
好了,休息一下,這邊你已經可以使用基本Git,進行專案上的管控了。:)
重置(reset)和回滾(revert)是兩種不同的撤銷變更的方法,各有其適用場景。
git reset
命令可以將 HEAD 指針移動到指定的提交,有三種模式:
git reset --soft <commit_hash>
git reset <commit_hash>
git reset --mixed <commit_hash>
git reset --hard <commit_hash>
git revert
創建一個新的提交來撤銷之前的變更: git revert <commit_hash>
標籤用於標記程式碼庫中的重要點,如發布版本。
輕量標籤: git tag <tag_name>
附註標籤(推薦): git tag -a <tag_name> -m "標籤說明"
git tag
git show <tag_name>
git push origin <tag_name>
推送所有標籤:git push origin --tags
刪除本地標籤: git tag -d <tag_name>
刪除遠程標籤: git push origin --delete <tag_name>
Cherry-pick 允許您選擇性地將特定提交應用到當前分支。
git cherry-pick <commit_hash>
git cherry-pick <commit_hash_1> <commit_hash_2>
git cherry-pick -n <commit_hash>
這會將變更應用到工作目錄和暫存區,但不自動創建新的提交。
如果 cherry-pick 過程中發生衝突:
git add
已解決的文件 git cherry-pick --continue
或者放棄 cherry-pick: git cherry-pick --abort
Rebase 用於改變一系列提交的基礎,可以用來整理提交歷史。
git rebase <base_branch>
git rebase -i <base_commit>
這會打開一個編輯器,允許您重新排序、編輯、壓縮或刪除提交。
pick
:使用該提交reword
:修改提交信息edit
:修改該提交squash
:將提交合併到前一個提交fixup
:類似squash,但丟棄提交信息drop
:刪除該提交如果 rebase 過程中發生衝突:
git add
已解決的文件 git rebase --continue
或者放棄 rebase:
git rebase --abort
分支策略是有效管理程式碼庫和協作流程的關鍵。
適合有計劃發布的大型項目。
main
(或master
): 穩定的生產程式碼develop
: 開發分支feature/*
: 新功能開發release/*
: 版本發布準備hotfix/*
: 生產環境緊急修復適合持續部署的項目。
main
: 始終保持可部署狀態main
創建良好的提交信息提高程式碼可讀性和可維護性。
feat
: 新功能fix
: 錯誤修復docs
: 文檔更改style
: 格式調整(不影響程式碼運行的變動)refactor
: 程式碼重構(既不是新增功能,也不是修改bug的程式碼變動)perf
: 改善性能的程式碼更改test
: 添加測試或修正現有測試chore
: 構建過程或輔助工具的變動例子:
feat(auth): implement user authentication
Add login and registration endpoints
Implement JWT token generation and validation
Set up password hashing with bcrypt
Closes #123
程式碼審查是提高程式碼質量和知識共享的關鍵實踐。
Git主要通過命令行界面操作,常用的命令行工具包括:
git init # 初始化倉庫
git clone # 克隆倉庫
git add # 添加文件到暫存區
git commit # 提交更改
git push # 推送到遠程倉庫
git pull # 從遠程倉庫拉取更新
對於不習慣命令行的用戶,有多種圖形化界面(GUI)工具可供選擇:
許多現代集成開發環境(IDE)都內建Git支持:
IDE集成使開發者可以在編碼的同時進行版本控制操作。
GitHub提供了多種工具來增強協作和開發流程:
許多第三方服務可以與GitHub集成,提高開發效率:
一些擴展工具可以增強Git的功能:
這些工具和集成使Git和GitHub更加強大和靈活,能夠適應不同的開發需求和工作流程。
Git 和 GitHub 提供了多種機制來確保程式碼的安全性和適當的訪問控制。以下是兩個關鍵方面:
SSH(Secure Shell)密鑰提供了一種安全的方式來驗證你的身份,無需每次都輸入用戶名和密碼。
生成 SSH 密鑰: ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
查看公鑰: cat ~/.ssh/id_rsa.pub
將公鑰添加到 GitHub 賬戶:
ssh -T git@github.com
使用 SSH 密鑰可以增強安全性,並簡化了與遠程倉庫的交互過程。
GitHub 提供了細粒度的訪問控制,可以管理誰可以訪問你的倉庫以及他們可以執行什麼操作。
官方文檔是最權威和最新的資訊來源:
Git 官方文檔
GitHub 官方文檔
GitHub Guides
Codecademy - Learn Git
Udacity - Version Control with Git
Oh Shit, Git!?!